package com.ok.sb.service.impl;

import com.ok.sb.dao.UserDAO;
import com.ok.sb.entity.User;
import com.ok.sb.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * (User)表服务实现类
 *
 * @author ok
 * @since 2021-08-16 22:48:15
 */
@Service("userService")
public class UserServiceImpl implements UserService {
	@Resource
	private UserDAO userDAO;

	/**
	 * 通过主键查询单条数据
	 *
	 * @param id 主键
	 * @return 单条数据
	 */
	@Override
	public User findById(Integer id) {
		return userDAO.selectByPrimaryKey(id);
	}

	/**
	 * 通过主键查询单条数据-DAO方法上写SQL
	 *
	 * @param id 主键
	 * @return 单条数据
	 */
	@Override
	public User findByIdSql(Integer id) {
		return userDAO.findByIdSql(id);
	}

	/**
	 * 通过主键查询单条数据 XML文件写SQL
	 *
	 * @param id 主键
	 * @return 单条数据
	 */
	@Override
	public User findByIdXml(Integer id) {
		return userDAO.findByIdXml(id);
	}

	/**
	 * 保存
	 *
	 * @param name     名称
	 * @param password 密码
	 * @return 单条数据
	 */
	@Override
	@Transactional(rollbackFor = Exception.class)
	public User save(String name, String password) {
		User user = User.builder().name(name).password(password).build();
		int i = userDAO.insertSelective(user);
		if (i > 0) {
			return user;
		}
		return null;
	}
}
